//=============================================================================
//Name		:isr.c
//Purpose	:Interrupt Service Routine
//=============================================================================
#define		_ISR_C
#include    "includeAll.h"
//=============================================================================
// Function:	void INT0_int(void)
// Purpose:	INT0 pin interrupt vector
// Input:	none
// OutPut:	none
// Author:
//=============================================================================
void INT0_int(void) interrupt 0
{
	IE0 = 0;			//clear interrupt flag
}
//=============================================================================
// Function:	void TIMER0_int(void)
// Purpose:	TIMER0 interrupt vector
// Input:	none
// OutPut:	none
// Author:
//=============================================================================
void TIMER0_int(void) interrupt 1
{
	TF0 = 0;			//clear interrupt flag
	TR0 = 0;

	TH0 = (65536-7372)/256;	//4ms timer0 interrupt
	TL0 = (65536-7372)%256;
	TR0 = 1;
	
//DisplayScan();

	// KeyJudge();
   
     if(buzzConvertAdTimer > 0)
    {
        buzzConvertAdTimer-- ;
    }
    else{
        bBuzz = 0 ;
    }
	 if(buzzLastTimer > 0)
        {
            buzzLastTimer-- ;
        }
        else
        {
			P1MODH  &=b1111_1100;
			P1MODH  |=b0000_0001;
            F_setBuzz()	;
        }
				
		timer40ms++;
    timer500ms++;
    timer1s++;	
	
}

void TIMER1_int(void) interrupt 3
{
	TF1 = 0;			//clear interrupt flag
	 TR1 = 0;
	 TR1 = 1;
  TH1 = (65536-6000)/256;		//20ms timer1 interrupt
	TL1 = (65536-6000)%256;
	
  
}

void TIMER2_int(void) interrupt 5
{
	TF2 = 0;			//clear interrupt flag
	 if(buzzLastTimer > 0)
  {
     
        F_buzz() ;
    }
	 if(bAllowGetKey)
	{
		KeyJudge();
		bAllowGetKey=0;
    }
	DisplayScan();
	
	
	
	PINMOD &=b1111_1100;
	PINMOD |=b0000_0010;
	
	// P1MODH &=b1111_0011;
	// P1_5=1;
	
	
	if(bHigTemp)
	{
		fireType=D_15;
	}
	
	bZero = D_crossZero ;
	
	
	
	if((bWattSetted)&&(bAdOff==0)&&(bAdShort==0)){		
		if(bLastZero != bZero){
		//0->1 or 1-->0
			bDelay=1;											
			}
	
		if(bDelay){
			
			delayTimer++;
			if(delayTimer>=fireType){
			F_triacOn() ;
			triacTimer = D_triacHoldTime ;
				delayTimer=0;
				bDelay=0;
			}	
			
		
		
		}	
	}	
	
		if(triacTimer > 0){
			triacTimer--  ;	
			}
			else{
			F_triacOff() ;    
			}


	bLastZero = bZero ;
	
	
	
	
	
	
	// if((bWattSetted)&&(bAdOff==0)&&(bAdShort==0)){		
		// if(bLastZero != bZero){
		// //0->1 or 1-->0
			// if(holdWatt >0){
				// holdWatt--;
				// if(holdFireType>0)
				// {
						// holdFireType--;
						// F_triacOn() ;
						// triacTimer = D_triacHoldTime ;	
					
					
				// }
			// }
			// if(holdWatt==0)
			// {
				// holdWatt=D_watt;
				// holdFireType=fireType;	
				
			// }
			
		// }		
	// }
	// bLastZero = bZero ;
	// if(triacTimer > 0){
		// triacTimer--  ;	
	// }
	// else{
		// F_triacOff() ;
	// }
	
	
	
	
}
